// up  down  left  right

// 设置固定值中的某一个
let dir = 'up'

// 定义一个类型
type tDir = 'up' | 'down' | 'left' | 'right'

// 定义的时候，只能是我们定义值的其中一个
let d1: tDir = 'left'
// 修改还的时候也是，值只能是我们定义的其中一个
d1 = 'down'

// type 也可以给组件内部的元素设置数据类型
type tArr = number | string | boolean
const list: tArr[] = [1, 2, '22', true]


/*
    type 和 interface 类型，最大的区别就是 type 有 =
    建议给对象属性添加数据类型的时候都使用 interface 
    如果给一个或者多个固定值,或者数组内容添加类型的时候可以使用 type
*/
type tObj = {
    name: string
    age: number
    sex?: any
}

const obj: tObj = {
    name: '',
    age: 1
}